{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Python Briefing"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Dr. Pengfei Zhao**\n",
    "\n",
    "Finance Mathematics Program, \n",
    "\n",
    "BNU-HKBU United International College"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1. Why Learn Python?"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    " <img src=\"../Figures/python1600.png\" width = \"180\" height = \"150\" alt=\"图片名称\" align=center />"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### A popular general programming language"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* Many famous web applications are written in Python, e.g."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Youtube              |  豆瓣 |  Dropbox |  Quora |  Instagram |  BitTorrent  |  Spotify | others | \n",
    ":-------------------------:|:-------------------------:|:-------------------------:|:-------------------------:|:-------------------------: |:-------------------------:|:-------------------------:|:-------------------------:\n",
    "<img src=\"../Figures/new-youtube-logo.jpg\" width = \"100\" height = \"150\"/>  |  <img src=\"../Figures/Douban_logo.svg.png\" width = \"100\" height = \"150\"/>  |  <img src=\"../Figures/dropbox.png\" width = \"100\" height = \"150\"/> |  <img src=\"../Figures/quora.png\" width = \"100\" height = \"150\"/> |  <img src=\"../Figures/instagram-logo.png\" width = \"100\" height = \"150\"/>|  <img src=\"../Figures/bt.jpg\" width = \"100\" height = \"150\"/> |  <img src=\"../Figures/spotify.png\" width = \"100\" height = \"150\"/>|  <img src=\"../Figures/Ellipsis.jpg\" width = \"100\" height = \"150\"/>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* Greatly needed in Industry and job market 2018([source](https://www.codingdojo.com/blog/7-most-in-demand-programming-languages-of-2018/))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    " <img src=\"../Figures/jobs2018.png\" width = \"380\" height = \"150\" alt=\"图片名称\" align=center />"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### TIOBE Index for September 2018. ([source](https://www.tiobe.com/tiobe-index/))."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    " <img src=\"../Figures/language2018.png\" width = \"580\" height = \"350\" alt=\"图片名称\" align=center />"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Relating to Finance"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* **Most popular language for data science:** see [here](https://www.quora.com/Why-is-Python-a-language-of-choice-for-data-scientists) for detailed explanation. Finance industry has huge amount of data.\n",
    "\n",
    "    * *Numpy:* fundamental package for numerical computation.\n",
    "    * *Matplotlib:* a mature and popular plotting package\n",
    "    * *pandas:* organize data\n",
    "    * *Ipython:* a rich interactive interface\n",
    "    * *scikit-learn: various statistics, machine learning models\n",
    "\n",
    "* **Quick Prototyping**\n",
    "    * In my cases, investment opportunity is transient. Python is good at quick implementations of models.\n",
    "\n",
    "* **Quantitative Trading platforms**\n",
    "    * Abroad: [Quantopian](https://www.quantopian.com/)\n",
    "    * China: [聚宽](https://www.joinquant.com/), [优矿](https://uqer.io/home/), [米筐](https://www.ricequant.com/)\n",
    "\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    " <img src=\"../Figures/joinquant.png\" width = \"580\" height = \"250\" alt=\"图片名称\" align=center />"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 2. Python Itself"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 2.1 History"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* Created in 1991 by Guido van Rossum (now at Google). Named for [Monty Python](https://en.wikipedia.org/wiki/Monty_Python). Not for  those dangerous reptiles.\n",
    "\n",
    "\n",
    " <img src=\"../Figures/monty.png\" width = \"180\" height = \"150\" alt=\"图片名称\" align=center />\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 2.2 Python Features"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* **Simple and easy to learn**"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "HelloWorld.java"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    " <img src=\"../Figures/java.png\" width = \"280\" height = \"250\" alt=\"图片名称\" align=center />"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "HelloWorld.cpp"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    " <img src=\"../Figures/cplusplus.png\" width = \"280\" height = \"250\" alt=\"图片名称\" align=center />"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "HelloWorld.py"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    " <img src=\"../Figures/py.png\" width = \"280\" height = \"250\" alt=\"图片名称\" align=center />"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "If you used Java or C++ before, you will feel you are flying when you try Python."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* **Interpreted Languages**\n",
    "    * Not compiled like C++\n",
    "    * Code is written and then directly executed by an `interpreter`.\n",
    "    * Type commands into interpreter and see immediate results.\n",
    "    \n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    " <img src=\"../Figures/iterprete.png\" width = \"380\" height = \"350\" alt=\"图片名称\" align=center />"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "* **General programming language for multiple purpose.** (compared to `MATLAB` and `R`)\n",
    "* **Free and Open Source.**\n",
    "    * You can freely distribute copies of this software, read it‘s source code, make changes to it, use pieces of it in new free programs. Compare to Matlab.\n",
    "* **High-level Language**\n",
    "    * No need to bother about the low-level details such as managing the memory used by your program, etc.\n",
    "* **Cross-Platform**\n",
    "    * You can use Python on Linux, Windows, Unix, Mac OS…\n",
    "* **Object Oriented**\n",
    "    * Python supports procedure-oriented programming as well as object-oriented programming. In procedure-oriented languages, the program is built around \tprocedures or functions which are nothing but reusable pieces of programs. \tIn object-oriented languages, the program is built around objects which combine data and functionality. \n",
    "* **Extensible**\n",
    "    * If you need a critical piece of code to run very fast or want to have some piece \tof algorithm not to be open, you can code that part of your program in C or C++ and then use them from your Python program.\n",
    "* **Extensive Libraries**\n",
    "    * Due to its open-source nature, Python is a vibrant community having a great number of warm-hearted contributors. There are many great libraries. You can know more from [here](http://noeticforce.com/best-python-libraries).\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 2.3 Installing Python"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* For Windows:\n",
    "    * Download Python from http://www.python.org\n",
    "    * Install\n",
    "* For Mac OS:\n",
    "    * Python is already installed.\n",
    "    * Open terminal and just type \"python\"\n",
    "* For Linux:\n",
    "    * Chances that Python is already installed.\n",
    "    * If not installed, you can use `apt-get` command for the installation.\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 2.4 Versions of Python"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* We are going to use Python 3.x in this course.\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3. Python Editor"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* You need to write your program in an editor. Any text editor is fine, writing Python code is just like writing a txt file, as long as you installed Python which can interpret your code.\n",
    "* But different editors' have their own characters. You can choose one you like best."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 3.1 Shell"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* Once you open the terminal and type `Python`, you can code.\n",
    " <img src=\"../Figures/editor-shell.png\" width = \"280\" height = \"250\" alt=\"图片名称\" align=center />"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Pros:** Convenient to open, quick test of python syntax. \n",
    "\n",
    "**Cons:** Not appropriate to write long functions.\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 3.2 Text Editor"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* Although it is convenient to use `interpreter` to write the program, but all the codes will be gone once you close the terminal. In many cases you may want save your codes into a file for later use.\n",
    "* Any text editor is fine.\n",
    "* Write the python code in any text editor, save as `***.py`\n",
    "* `>>> python ***.py`"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    " <img src=\"../Figures/editor1.png\" width = \"280\" height = \"250\" alt=\"图片名称\" align=center />"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    " <img src=\"../Figures/editor2.png\" width = \"280\" height = \"250\" alt=\"图片名称\" align=center />"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "You may configure the text editor background, syntax highlighting, etc"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 3.3 Jupyter Notebook"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* You can see more introduction [here](http://jupyter.org/)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    " <img src=\"../Figures/nb1.png\" width = \"380\" height = \"350\" alt=\"图片名称\" align=center />"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    " <img src=\"../Figures/nb2.png\" width = \"380\" height = \"350\" alt=\"图片名称\" align=center />"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* Highly interactive, database access, plotting, Latex, HTML, etc."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 4. Excercise"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$\\int_a^b (x^2+y^2)x dxdy$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Test"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "hello world\n"
     ]
    }
   ],
   "source": [
    "print ('hello world')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "See my 'Hello World' \n"
     ]
    }
   ],
   "source": [
    "print (\"See my 'Hello World' \")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "hello world\n"
     ]
    }
   ],
   "source": [
    "print ('hello world') # this is the comment"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "hello world\n"
     ]
    }
   ],
   "source": [
    "def hello():\n",
    "    print ('hello world')\n",
    "    \n",
    "hello()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Support visualization"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f5db8766f98>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "\n",
    "x = np.arange(0, 2, 0.01)\n",
    "y = np.sin(2*np.pi*x)\n",
    "plt.plot(x,y)\n",
    "plt.title('Sin Function')\n",
    "plt.xlabel('x value')\n",
    "plt.ylabel('y value')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Support Latex"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$\\int_a^b x(x^2+y^2)dxd$y"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<img src=\"http://history.nasa.gov/ap11ann/kippsphotos/5903.jpg\"/>"
      ],
      "text/plain": [
       "<IPython.core.display.Image object>"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from IPython.display import Image\n",
    "Image(url='http://history.nasa.gov/ap11ann/kippsphotos/5903.jpg')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "\n",
    "* This is a test"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "uicquant",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
